package com.cz.nongyetongv5.activity;
//package com.cz.nongyetongv5.activity;
//
//import java.io.File;
//import java.text.SimpleDateFormat;
//import java.util.ArrayList;
//import java.util.Calendar;
//import java.util.Date;
//import java.util.GregorianCalendar;
//import java.util.List;
//
//import org.jivesoftware.smack.PacketListener;
//import org.jivesoftware.smack.XMPPException;
//import org.jivesoftware.smack.packet.Message;
//import org.jivesoftware.smack.packet.Packet;
//import org.jivesoftware.smackx.muc.MultiUserChat;
//import org.jivesoftware.smackx.packet.VCard;
//import org.json.JSONArray;
//import org.json.JSONException;
//import org.json.JSONObject;
//
//import android.app.Activity;
//import android.graphics.Bitmap;
//import android.graphics.BitmapFactory;
//import android.os.AsyncTask;
//import android.os.Bundle;
//import android.os.Handler;
//import android.util.Log;
//import android.view.View;
//import android.view.View.OnClickListener;
//import android.view.ViewGroup;
//import android.widget.AbsListView;
//import android.widget.AbsListView.OnScrollListener;
//import android.widget.Button;
//import android.widget.EditText;
//import android.widget.Toast;
//
//import com.cz.nongyetongv5.R;
//import com.cz.nongyetongv5.adapter.HuDongJiaoLiuAdpter;
//import com.cz.nongyetongv5.adapter.config.CommonConstants;
//import com.cz.nongyetongv5.bean.ChatBean;
//import com.cz.nongyetongv5.bean.ChatBean.ChatType;
//import com.cz.nongyetongv5.bean.User;
//import com.cz.nongyetongv5.custom.CustomListViewForChatRecord;
//import com.cz.nongyetongv5.custom.CustomListViewForChatRecord.OnRefreshListener;
//import com.cz.nongyetongv5.custom.wheelview.Utils;
//import com.cz.nongyetongv5.utils.CharsetUtil;
//import com.cz.nongyetongv5.utils.HttpUtils;
//import com.cz.nongyetongv5.utils.HttpUtils.OnRequestExecuted;
//import com.cz.nongyetongv5.utils.ImageUtil;
//import com.cz.nongyetongv5.utils.XmppTool;
//
//public class HuDongJiaoLiuActivity extends Activity implements OnClickListener {
//
//	private CustomListViewForChatRecord lvChatList = null;
//
//	/**
//	 * ����������
//	 */
//	private HuDongJiaoLiuAdpter adpChatAdapter = null;
//
//	/**
//	 * �û�����
//	 */
//	private User user = null;
//
//	/**
//	 * ���ذ�ť
//	 */
//	private ViewGroup btnBack = null;
//
//	/**
//	 * ���Ͱ�ť
//	 */
//	private Button btn_send = null;
//
//	private Button btn_send_image = null;
//
//	/**
//	 * �ı��༭��
//	 */
//	private EditText edtMessage = null;
//
//	/**
//	 * �����������
//	 */
//	public static MultiUserChat muc = null;
//
//	/**
//	 * ���ݹ��������ݼ���
//	 */
//	public static ArrayList<ChatBean> chatBeans = null;
//
//	// ҳ��С
//	public static final int PAGESIZE = 20;
//
//	/**
//	 * �Ƿ������һҳ
//	 */
//	private boolean hasNextPage;
//
//	/**
//	 * ��һ�����ݵ���ʼID
//	 */
//	private long dataId = 0;
//
//	/**
//	 * ��ȡ��ǰlistview ��position
//	 */
//
//	@Override
//	protected void onCreate(Bundle savedInstanceState) {
//		super.onCreate(savedInstanceState);
//
//		setContentView(R.layout.hudongjiaoliu);
//
//		initView();
//
//		initConfig();
//	}
//
//	/**
//	 * ��ʼ�ƻ�
//	 */
//	private void initView() {
//
//		lvChatList = (CustomListViewForChatRecord) findViewById(R.id.lvChatList);
//
//		lvChatList.removeFooterView(lvChatList.getChildAt(lvChatList
//				.getChildCount() - 1));
//
//		btnBack = (ViewGroup) findViewById(R.id.btnBack);
//		btnBack.setOnClickListener(this);
//
//		btn_send = (Button) findViewById(R.id.btn_send);
//
//		btn_send.setOnClickListener(this);
//
//		btn_send_image = (Button) findViewById(R.id.btn_send_image);
//
//		btn_send_image.setOnClickListener(this);
//
//		edtMessage = (EditText) findViewById(R.id.et_sendmessage);
//
//	}
//
//	private void initConfig() {
//		user = (User) getIntent().getSerializableExtra("user");
//
//		List<ChatBean> datas = new ArrayList<ChatBean>();
//
//		adpChatAdapter = new HuDongJiaoLiuAdpter(HuDongJiaoLiuActivity.this,
//				datas);
//
//		lvChatList.setAdapter(adpChatAdapter);
//
//		final Handler handler = new Handler() {
//
//			@Override
//			public void handleMessage(android.os.Message msg) {
//
//				switch (msg.what) {
//
//				case 0:
//
//					ChatBean entity = (ChatBean) msg.obj;
//
//					adpChatAdapter.addItem(entity);
//
//					if (entity.getMessageType() == ChatType.TO_MESSAGE) {
//						edtMessage.setText("");
//					}
//
//					adpChatAdapter.notifyDataSetChanged();
//
//					try {
//						Thread.sleep(20);
//					} catch (InterruptedException e) {
//					}
//
//					lvChatList
//							.setSelection(lvChatList.getAdapter().getCount() - 1);
//
//					break;
//
//				}
//			}
//
//		};
//
//		muc.addMessageListener(new PacketListener() {
//
//			@Override
//			public void processPacket(Packet packet) {
//
//				// ʱ���ʽ��
//				SimpleDateFormat sdf = new SimpleDateFormat("hhʱmm��");
//				// ��Ϣ����
//				Message message = (Message) packet;
//
//				// �����˭����
//				String fromUserId = message.getFrom();
//
//				// ��ȡ���û���ID
//				fromUserId = fromUserId.substring(fromUserId.lastIndexOf('/') + 1);
//
//				String username = null;
//
//				// �û�ͷ�����
//				Bitmap userPhotoBitmap = null;
//
//				try {
//
//					VCard vCard = new VCard();
//
//					vCard.load(XmppTool.getConnection(), fromUserId + "@"
//							+ XmppTool.getConnection().getServiceName());
//
//					// ����û���ͷ��
//					File userPhoto = ImageUtil.getUserPhotoByUserId(fromUserId);
//
//					// ����û�ͷ����ھ���
//					if (userPhoto != null) {
//
//						// ֱ���ó�ͷ��
//						// int widOrHei =
//						// Utils.dip2px(HuDongJiaoLiuActivity.this,
//						// 100);
//
//						// userPhotoBitmap = ImageUtil
//						// .decodeSampledBitmapFromResource(
//						// userPhoto.getAbsolutePath(), widOrHei,
//						// widOrHei);
//
//						userPhotoBitmap = BitmapFactory.decodeFile(userPhoto
//								.getAbsolutePath());
//					} else {
//
//						// �����ڻ�����������϶�ȡ
//						byte[] photoBytes = vCard.getAvatar();
//
//						if (photoBytes != null) {
//
//							// int widOrHeight = Utils.dip2px(
//							// HuDongJiaoLiuActivity.this, 100);
//
//							// userPhotoBitmap = ImageUtil
//							// .decodeSampledBitmapFromResource(
//							// photoBytes, widOrHeight,
//							// widOrHeight);
//
//							userPhotoBitmap = BitmapFactory.decodeByteArray(
//									photoBytes, 0, photoBytes.length);
//
//							File touXiangFile = new File(ImageUtil
//									.getUserPhotoDir(), fromUserId + ".jpg");
//
//							try {
//
//								// д���ļ�
//								ImageUtil.bigmapSave(touXiangFile,
//										userPhotoBitmap, 80);
//							} catch (Exception e) {
//
//							}
//
//						} else {
//
//							// ������Ͽ�����Ȼû�����ó�Ĭ�J�^��
//							userPhotoBitmap = BitmapFactory
//									.decodeResource(getResources(),
//											R.drawable.default_touxiang);
//
//						}
//					}
//
//					username = vCard.getNickName();
//
//				} catch (XMPPException e) {
//				}
//
//				if (!CharsetUtil.isNotNull(username)) {
//
//					username = fromUserId;
//				}
//
//				// �����Ϣ
//				String body = message.getBody();
//
//				final ChatBean entity = new ChatBean();
//
//				Calendar calendar = new GregorianCalendar();
//
//				int hour = calendar.get(Calendar.HOUR_OF_DAY);
//
//				String timePre = "";
//
//				if (hour < 6) {
//					timePre = "�賿";
//				}
//
//				else if (hour < 9) {
//					timePre = "����";
//				}
//
//				else if (hour < 12) {
//					timePre = "����";
//				}
//
//				else if (hour < 14) {
//					timePre = "����";
//				}
//
//				else if (hour < 17) {
//					timePre = "����";
//				}
//
//				else if (hour < 19) {
//					timePre = "����";
//				}
//
//				else if (hour < 22) {
//					timePre = "����";
//				}
//
//				else {
//					timePre = "ҹ��";
//				}
//
//				entity.setDate(timePre + "," + sdf.format(new Date()));
//
//				entity.setName(username);
//
//				entity.setTouXiang(userPhotoBitmap);
//
//				if (user.getUsername().equals(fromUserId)) {
//
//					entity.setMessageType(ChatType.TO_MESSAGE);
//				} else {
//					entity.setMessageType(ChatType.FROM_MESSAGE);
//				}
//
//				entity.setText(body);
//
//				if (CharsetUtil.isNotNull(body)) {
//
//					android.os.Message msg = new android.os.Message();
//
//					msg.obj = entity;
//
//					msg.what = 0;
//
//					handler.sendMessage(msg);
//
//				}
//
//			}
//		});
//
//		hasNextPage = getIntent().getBooleanExtra("hasNextPage", false);
//
//		dataId = getIntent().getLongExtra("dataId", 0);
//
//		if (chatBeans != null && chatBeans.size() > 0) {
//
//			adpChatAdapter.addItem(chatBeans);
//
//			adpChatAdapter.notifyDataSetChanged();
//
//		}
//
//		chatBeans.clear();
//
//		chatBeans = null;
//
//		lvChatList.setonRefreshListener(new OnRefreshListener() {
//
//			@Override
//			public void onRefresh() {
//
//				if (!hasNextPage) {
//					lvChatList.onRefreshComplete();
//					Toast.makeText(HuDongJiaoLiuActivity.this, "û�и�����Ϣ��¼..",
//							Toast.LENGTH_SHORT).show();
//				} else {
//
//					new AsyncTask<Integer, Integer, Integer>() {
//
//						private int responseCodeRet;
//
//						private String responseBodyRet;
//
//						@Override
//						protected Integer doInBackground(Integer... params) {
//
//							// ��ѯ�����¼�ĵ�ַ
//							String requestUrl = getString(R.string.query_chat_hoistry);
//
//							requestUrl += "?start=" + dataId + "&size="
//									+ HuDongJiaoLiuActivity.PAGESIZE;
//
//							String authUserName = getString(R.string.http_request_validateusername);
//
//							String authPassword = getString(R.string.http_request_validatepassword);
//
//							HttpUtils httpUtils = HttpUtils.getInstance();
//
//							httpUtils
//									.setOnRequestExecuted(new OnRequestExecuted() {
//
//										@Override
//										public void onRequestExecuted(
//												int responseCode,
//												String responseBody) {
//
//											responseCodeRet = responseCode;
//
//											responseBodyRet = responseBody;
//
//										}
//									});
//
//							httpUtils.sendRequest(requestUrl, null, "GET",
//									"UTF-8", authUserName, authPassword, user);
//
//							return null;
//						}
//
//						@Override
//						protected void onPostExecute(Integer result) {
//
//							// �������
//							ArrayList<ChatBean> chatBeans = new ArrayList<ChatBean>();
//
//							switch (responseCodeRet) {
//
//							case HttpUtils.SUCCESS:
//
//								// ������õ�ʱ��
//
//								if (CharsetUtil.isNotNull(responseBodyRet)) {
//
//									ChatBean currentChatBean = null;
//
//									if (adpChatAdapter.getCount() > 0) {
//
//										currentChatBean = adpChatAdapter
//												.getDatas().get(0);
//
//									}
//
//									try {
//										JSONObject jsonObject = new JSONObject(
//												responseBodyRet);
//
//										hasNextPage = jsonObject
//												.getBoolean("hasNextPage");
//
//										dataId = jsonObject.getLong("dataId");
//
//										JSONArray jsonArray = jsonObject
//												.getJSONArray("datas");
//
//										for (int i = 0; i < jsonArray.length(); i++) {
//
//											JSONObject chatJsonItem = jsonArray
//													.getJSONObject(i);
//
//											long messageId = chatJsonItem
//													.getLong("messageId");
//
//											String sender = chatJsonItem
//													.getString("sender");
//
//											String createDate = chatJsonItem
//													.getString("createDate");
//
//											String content = chatJsonItem
//													.getString("content");
//
//											String username = sender;
//
//											// ÿ�ε�½��ʱ�����ͷ��
//											VCard card = new VCard();
//
//											// �û�ͷ�����
//											Bitmap userPhotoBitmap = null;
//
//											try {
//												card.load(
//														XmppTool.getConnection(),
//														sender
//																+ "@"
//																+ XmppTool
//																		.getConnection()
//																		.getServiceName());
//
//												username = card.getNickName();
//
//												// ����û���ͷ��
//												File userPhoto = ImageUtil
//														.getUserPhotoByUserId(sender);
//
//												// ����û�ͷ����ھ���
//												if (userPhoto != null) {
//
//													// ֱ���ó�ͷ��
//													int widOrHei = Utils
//															.dip2px(HuDongJiaoLiuActivity.this,
//																	52);
//
//													userPhotoBitmap = ImageUtil
//															.decodeSampledBitmapFromResource(
//																	userPhoto
//																			.getAbsolutePath(),
//																	widOrHei,
//																	widOrHei);
//												} else {
//
//													// �����ڻ�����������϶�ȡ
//													byte[] photoBytes = card
//															.getAvatar();
//
//													if (photoBytes != null) {
//
//														int widOrHeight = Utils
//																.dip2px(HuDongJiaoLiuActivity.this,
//																		52);
//
//														userPhotoBitmap = ImageUtil
//																.decodeSampledBitmapFromResource(
//																		photoBytes,
//																		widOrHeight,
//																		widOrHeight);
//
//														File touXiangFile = new File(
//																ImageUtil
//																		.getUserPhotoDir(),
//																sender + ".jpg");
//
//														try {
//
//															// д���ļ�
//															ImageUtil
//																	.bigmapSave(
//																			touXiangFile,
//																			userPhotoBitmap,
//																			80);
//														} catch (Exception e) {
//
//														}
//
//													} else {
//
//														// ������Ͽ�����Ȼû�����ó�Ĭ�J�^��
//														userPhotoBitmap = BitmapFactory
//																.decodeResource(
//																		getResources(),
//																		R.drawable.default_touxiang);
//
//													}
//												}
//
//											} catch (XMPPException e) {
//											}
//
//											ChatBean chatBean = new ChatBean();
//
//											if (user.getUsername().equals(
//													sender)) {
//
//												chatBean.setMessageType(ChatType.TO_MESSAGE);
//
//											} else {
//												chatBean.setMessageType(ChatType.FROM_MESSAGE);
//											}
//
//											chatBean.setMessageId(messageId);
//
//											chatBean.setName(username);
//
//											chatBean.setDate(createDate);
//
//											chatBean.setText(content);
//
//											// ����ͷ��
//											chatBean.setTouXiang(userPhotoBitmap);
//
//											// ����bean
//											chatBeans.add(0, chatBean);
//
//										}
//
//										adpChatAdapter.addItem(chatBeans);
//
//										adpChatAdapter.notifyDataSetChanged();
//
//										// ���б����¹�λ
//										if (currentChatBean != null) {
//
//											int index = adpChatAdapter
//													.getDatas().indexOf(
//															currentChatBean);
//
//											lvChatList.setSelection(index);
//
//										}
//
//										Toast.makeText(
//												HuDongJiaoLiuActivity.this,
//												"�������...", Toast.LENGTH_SHORT)
//												.show();
//
//									} catch (JSONException e) {
//										Toast.makeText(
//												HuDongJiaoLiuActivity.this,
//												"��ȡ�����¼ʧ��", Toast.LENGTH_SHORT)
//												.show();
//									}
//
//								} else {
//									Toast.makeText(HuDongJiaoLiuActivity.this,
//											"��ȡ�����¼ʧ��", Toast.LENGTH_SHORT)
//											.show();
//								}
//
//								break;
//
//							case HttpUtils.TIMEOUT:
//
//								// �������ӳ�ʱ
//								Toast.makeText(
//										HuDongJiaoLiuActivity.this,
//										"��ȡ�����¼ʧ��,"
//												+ getString(R.string.message_socktimeout),
//										Toast.LENGTH_SHORT).show();
//
//								break;
//
//							case HttpUtils.NETWORK_ERR:
//
//								// ����������
//								Toast.makeText(
//										HuDongJiaoLiuActivity.this,
//										"��ȡ�����¼ʧ��,"
//												+ getString(R.string.error_no_network),
//										Toast.LENGTH_SHORT).show();
//								break;
//							default:
//
//								// δ֪�e�`
//								Toast.makeText(
//										HuDongJiaoLiuActivity.this,
//										"��ȡ�����¼ʧ��,"
//												+ getString(R.string.message_softerror),
//										Toast.LENGTH_SHORT).show();
//
//								break;
//							}
//
//							lvChatList.onRefreshComplete();
//
//						}
//
//					}.execute();
//
//				}
//
//			}
//		});
//
//	}
//
//	@Override
//	public void onClick(View v) {
//
//		if (v == btnBack) {
//			// ����
//			finish();
//
//		}
//
//		if (v == btn_send) {
//
//			try {
//
//				String context = edtMessage.getText().toString().trim();
//
//				if (CharsetUtil.isNotNull(context)) {
//					muc.sendMessage(context);
//				}
//
//			} catch (XMPPException e) {
//			}
//		}
//
//		if (v == btn_send_image) {
//			Toast.makeText(this, "����ͼƬ..", Toast.LENGTH_SHORT).show();
//		}
//
//	}
//
//	@Override
//	protected void onDestroy() {
//
//		if (muc != null) {
//
//			// �˳���½
//			XmppTool.closeConnection();
//
//		}
//
//		muc = null;
//
//		if (chatBeans != null) {
//
//			chatBeans.clear();
//		}
//
//		chatBeans = null;
//
//		super.onDestroy();
//	}
//
//}
